package com.powerbank.common.query;

import lombok.Data;

import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;

/**
 * 分页查询参数基类
 */
@Data
public class PageQuery {
    
    /**
     * 当前页码
     */
    @Min(value = 1, message = "页码不能小于1")
    private Long current = 1L;
    
    /**
     * 每页大小
     */
    @Min(value = 1, message = "每页大小不能小于1")
    @Max(value = 100, message = "每页大小不能大于100")
    private Long size = 10L;
    
    /**
     * 排序字段
     */
    private String sortBy;
    
    /**
     * 排序方向 asc/desc
     */
    private String sortOrder = "desc";
    
    /**
     * 计算offset
     */
    public Long getOffset() {
        return (current - 1) * size;
    }
    
    /**
     * 获取当前页码
     */
    public Long getPage() {
        return current;
    }
    
    /**
     * 获取每页大小
     */
    public Long getSize() {
        return size;
    }
}